package com.volunteer.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.volunteer.entity.UserCollection;

/**
 * 收藏服务接口
 */
public interface CollectionService extends IService<UserCollection> {

    /**
     * 添加收藏
     *
     * @param activityId 活动ID
     * @param userId     用户ID
     * @return 是否成功
     */
    boolean addCollection(Long activityId, Long userId);

    /**
     * 取消收藏
     *
     * @param activityId 活动ID
     * @param userId     用户ID
     * @return 是否成功
     */
    boolean cancelCollection(Long activityId, Long userId);

    /**
     * 查询用户是否已收藏活动
     *
     * @param activityId 活动ID
     * @param userId     用户ID
     * @return 是否已收藏
     */
    boolean isUserCollected(Long activityId, Long userId);

    /**
     * 查询用户收藏的活动数量
     *
     * @param userId 用户ID
     * @return 收藏数量
     */
    int countUserCollections(Long userId);

    /**
     * 查询活动的收藏数量
     *
     * @param activityId 活动ID
     * @return 收藏数量
     */
    int countActivityCollections(Long activityId);

    /**
     * 收藏/取消收藏活动
     *
     * @param activityId 活动ID
     * @param type       操作类型：1-收藏，0-取消收藏
     * @return 是否成功
     */
    boolean toggleCollection(Long activityId, Integer type);
}
